package com.cloud.lan.entity.enums;

import java.util.Arrays;

import lombok.Getter;

/**
 * 系统账户类型 枚举
 * @author ErKang
 * @date Created in 2022/10/16 19:26
 * @title AccountTypeEnum.java
 * Department: Product development
 */
@Getter
@SuppressWarnings({"all"})
public enum ActivityAcTypeEnum {

    /** 线下劵 */
    AC_TYPE_线下劵(1, "线下劵"),
    /** 线上劵 */
    AC_TYPE_线上劵(2, "线上劵"),
    /** 活动卷 */
    AC_TYPE_活动卷(3, "活动卷"),
    /** 星品体验官福利卷 */
    AC_TYPE_星品体验官福利卷(4, "星品体验官福利卷"),
    /** 外部系统券 */
    AC_TYPE_外部系统券(5, "外部系统券"),
    /** 注册有礼 */
    AC_TYPE_注册有礼(6, "注册有礼"),
    ;
    private Integer id;
    private String name;

    ActivityAcTypeEnum(Integer id, String name) {
        this.id = id;
        this.name = name;
    }

    public static String getById(final Integer id) {
        for (ActivityAcTypeEnum type : ActivityAcTypeEnum.values()) {
            if (type.getId().equals(id)) {
                return type.getName();
            }
        }
        return null;
    }

    public static ActivityAcTypeEnum getEnumByCode(Integer id) {
        return Arrays.stream(values())
                .filter(e -> e.getId().equals(id))
                .findFirst()
                .orElse(AC_TYPE_线下劵);
    }
}
